iT邦幫忙

2022 iThome 鐵人賽

DAY 12
1
DevOps

前端轉生~到了實驗室就要養幾隻可愛鯨魚:自架 Kubernetes 迷航日記系列 第 12

Day 12 — 艦隊通力合作搬運貨櫃:Docker 到 Kubernetes 轉換探討

  • 分享至 

  • xImage
  •  

可愛鯨魚

你知道跟鯨魚說謝謝他會回你什麼嗎? Yor're *Whalecome*
想不到開頭就來點冷笑話~

圖片來源:Docker (@Docker) / Twitter

根據上一篇使用 Docker 架設的方法,先來看看如果要搬到 Kubernetes 上有哪些不同吧!

探討

上一篇的架設方法是以 Docker 單一主機 進行架設,那這一篇使用 Kubernetes 就要以 多主機合作 的方式

Image

前面我們自己 Build Image 就可以直接拿到 Container 使用,但是在 Kubernetes 需要每一台主機都有這個 Image

從兩個觀點來看:

  1. 通常會連到遠端的 Registry (e.g. Docker Hub),(imagePullPolicy: IfNotPresent or imagePullPolicy: Always)
  2. 真的手動把 Image 搬到每個主機上,(imagePullPolicy: Never)

Volume

使用可以防止 Container 被刪掉後資料遺失,你可不想要生存了好幾天的心血就這樣付諸東流吧!

Docker volume

如果你有注意到前一篇的 Dockerfile,裡面有夾了一個 Volume 用來記錄資料,產生的檔案就會存放在 Docker 專屬的檔案目錄下,如下圖


圖片來源:Use volumes | Docker Documentation

Kubernetes PersistentVolume

那在 Kubernetes 呢?
Kubernetes 需要的是每一台主機都能連到共同的儲存空間

一般來說,如果要讓很多人共用資料夾可能會使用 Nas 或 雲端硬碟這種遠端的儲存空間

PersistentVolume 也提供了像是 nfs, iscsi 的遠端儲存方式,當然如果預期只在單一的 node 上使用還是能用 hostPath 掛本機的目錄

nfs pv


Network (Expose Service)

要如何把服務對外呢?

Docker Network

關於網路前面示範直接使用了本機的 ip 和 port (Host Network)

Docker Host Network
圖片來源:Day 30- 三周目 - Docker network 暨完賽回顧 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

其實 Docker 本身也提供了很多種網路架構,如 Host, Bridge, Overlay, IPvlan, MacVlan, ...

有興趣的人可以參考:Docker 網路簡介 | 小信豬的原始部落

Kubernetes Network

在 Kubernetes 除了直接指定單一 Pod 的 ip (ExternalIP) 和指定對外 port (hostPort) 外,還有可以 Service, Ingress 的資源可以使用

因為 Service, Ingress 內容很多,之後會 Ingress 篇詳細說明

這裡先用最簡單的 hostPort 和 Service nodePort 來示意

  • hostPort
    hostPort 會在部署到的 node 上開洞,範圍沒有限制,但要注意可能會與原本的服務衝突

  • nodePort
    nodePort 會在 node 上開洞,port 範圍在 30000~32768


Ref


明天就來用 Kubernetes 架設吧! /images/emoticon/emoticon07.gif


上一篇
Day 11 — 這絕對不是走私貨櫃:練習架設服務 - Minecraft Server in Docker
下一篇
Day 13 — 抓不完的走私貨櫃:練習架設服務 - Minecraft Server in Kubernetes
系列文
前端轉生~到了實驗室就要養幾隻可愛鯨魚:自架 Kubernetes 迷航日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
Time
iT邦新手 4 級 ‧ 2022-09-29 12:46:25

誤植 hostPort 為 Service,已經更新示意圖了 /images/emoticon/emoticon25.gif

我要留言

立即登入留言